/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia.daos;

import Persistencia.CRUD;
import Persistencia.DAO;
import Persistencia.SeqHelper;
import Persistencia.modelos.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Bruno
 */
public class SituacaoJogadorDAO implements DAO<Integer, SituacaoJogador> {

    public void salva(SituacaoJogador obj) {
        //Pessoa pessoa = (Pessoa) obj;               
        //CRUD.adiciona("SituacaoJogador", obj.getFieldsToInsertAsString(),  obj.getFieldContentToInsertAsString());

        ResultSet rs = CRUD.consulta("select seq_situacaoJogador.nextval IDSITUACAO from dual");
        try {
            rs.next();
            int i = SeqHelper.getId("SituacaoJogador");
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            String situacao = (obj.getSituacaoJogador()==null)?"null":"'"+obj.getSituacaoJogador()+"'";
            CRUD.adiciona("SituacaoJogador", "IDSITUACAO, SITUACAOJOGADOR", i + "," + obj.getSituacaoJogador());
            obj.setIdSituacao(i);
        } catch (SQLException ex) {
            Logger.getLogger(SituacaoJogadorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void atualiza(SituacaoJogador obj) {
        List<String> c = new ArrayList<String>();
        // c.add("IDSituacaoJogador");
        c.add("SITUACAOJOGADOR");
        List<String> a = new ArrayList<String>();
        a.add("'" + obj.getSituacaoJogador()+ "'");
        CRUD.atualiza("SituacaoJogador", c, a, " where IDSITUACAO = " + obj.getIdSituacao());

    }

    public void deleta(Integer obj) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(obj);
        String campo = "IDSITUACAO";
        CRUD.deleta("SituacaoJogador", campo, list);
    }

    public SituacaoJogador recupera(Integer obj) {
        try {
            Collection<SituacaoJogador> SituacaoJogadors = new ArrayList<SituacaoJogador>();
            ResultSet rs = CRUD.consulta("select * from SituacaoJogador  where p.IDSITUACAO = " + obj);
            rs.next();
            SituacaoJogador a = new SituacaoJogador();
            a.setIdSituacao(rs.getInt("idSituacao"));
            a.setSituacaoJogador(rs.getString("SITUACAOJOGADOR"));
            return a;
        } catch (SQLException ex) {
            throw new RuntimeException(ex);
        }
    }

    public Collection<SituacaoJogador> recuperaLista(Collection<Integer> chaves) {
        try {
            StringBuilder sb = new StringBuilder();
            Iterator<Integer> it = chaves.iterator();
            while (it.hasNext()) {
                sb.append(it.next()).append(",");
            }
            String ids = sb.toString().substring(0, sb.toString().length() - 1);

            Collection<SituacaoJogador> SituacaoJogadors = new ArrayList<SituacaoJogador>();
            ResultSet rs = CRUD.consulta("select * from SituacaoJogador p where p.idSituacao in (" + ids + ")");
            while (rs.next()) {
                SituacaoJogador a = new SituacaoJogador();
                a.setIdSituacao(rs.getInt("idSituacao"));
                a.setSituacaoJogador(rs.getString("SITUACAOJOGADOR"));
                SituacaoJogadors.add(a);
            }
            return SituacaoJogadors;
        } catch (SQLException ex) {
            throw new RuntimeException(ex);
        }
    }

    public Collection<SituacaoJogador> recuperaTodos() {
        try {
            Collection<SituacaoJogador> SituacaoJogadors = new ArrayList<SituacaoJogador>();
            ResultSet rs = CRUD.consulta("select * from SituacaoJogador");
            while (rs.next()) {
                SituacaoJogador a = new SituacaoJogador();
                a.setIdSituacao(rs.getInt("idSituacao"));
                a.setSituacaoJogador(rs.getString("SITUACAOJOGADOR"));
                SituacaoJogadors.add(a);
            }
            return SituacaoJogadors;
        } catch (SQLException ex) {
            throw new RuntimeException(ex);
        }
    }

    }
